Graphical Display with Integrated Recent Period Zoom and Historical Period Context Data

ABSTRACT

A system and method are provided for displaying a data series. In one embodiment, a graphical interface is provided including at least one axis that is divided into a plurality of axis regions. Preferably, each axis region uses a different linear scale, and the plurality of axis regions forms a continuous non-linear scale. The graphical interface also displays the data series in relation to the plurality of axis regions, and the data series is plotted in relation to each axis region based on a scale resolution corresponding to each respective axis region.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application is a continuation of U.S. patent application Ser. No.16/577,606, filed Sep. 20, 2019, which is a continuation of U.S. patentapplication Ser. No. 16/353,124, filed Mar. 14, 2019, now U.S. Pat. No.10,476,784, which is a continuation of U.S. patent application Ser. No.16/038,909, filed Jul. 18, 2018, now U.S. Pat. No. 10,275,913, which isa continuation of U.S. patent application Ser. No. 15/815,263, filedNov. 16, 2017, now U.S. Pat. No. 10,062,189, which is a continuation ofU.S. patent application Ser. No. 15/363,899, filed Nov. 29, 2016, nowU.S. Pat. No. 9,852,530, which is a continuation of U.S. patentapplication Ser. No. 14/884,175, filed Oct. 15, 2015, now U.S. Pat. No.9,542,709, which is a continuation of U.S. patent application Ser. No.13/960,778, filed Aug. 6, 2013, now U.S. Pat. No. 9,189,874, which is acontinuation of U.S. patent application Ser. No. 13/761,145, filed Feb.6, 2013, now U.S. Pat. No. 8,537,161, which is a continuation of U.S.patent application Ser. No. 13/587,865, filed Aug. 16, 2012, now U.S.Pat. No. 8,395,625, which is a continuation of U.S. patent applicationSer. No. 13/237,440, filed Sep. 20, 2011, now U.S. Pat. No. 8,269,774,which is a continuation of U.S. patent application Ser. No. 13/106,770,filed May 12, 2011, now U.S. Pat. No. 8,044,959, which is a continuationof U.S. patent application Ser. No. 12/604,979, filed Oct. 23, 2009, nowU.S. Pat. No. 7,965,292, which is a continuation of U.S. patentapplication Ser. No. 12/027,073, filed Feb. 6, 2008, now U.S. Pat. No.7,629,975, which is a continuation of U.S. patent application Ser. No.11/415,977, filed May 2, 2006, now U.S. Pat. No. 7,348,981, which is acontinuation of U.S. patent application Ser. No. 10/814,986, filed Mar.31, 2004, now U.S. Pat. No. 7,218,325, entitled “Graphical Display withIntegrated Recent Period Zoom and Historical Period Context Data,” thecontents of each of which are fully incorporated herein by reference forall purposes.

FIELD OF INVENTION

The present invention is directed to a graphical display interface fordisplaying data series. More specifically, the present invention isdirected to displaying time series data in an electronic tradingenvironment.

BACKGROUND

An exchange is a central marketplace with established rules andregulations where buyers and sellers meet to trade. Some exchanges,referred to as open outcry exchanges, operate using a trading floorwhere buyers and sellers physically meet on the floor to trade. Otherexchanges, referred to as electronic exchanges, operate by an electronicor telecommunications network instead of a trading floor to facilitatetrading in an efficient, versatile, and functional manner. Electronicexchanges have made it possible for an increasing number of people toactively participate in a market at any given time. The increase in thenumber of potential market participants has advantageously led to, amongother things, a more competitive market and greater liquidity.

With respect to electronic exchanges, buyers and sellers may log onto anelectronic exchange trading platform by way of a communication linkthrough their user terminals. Once connected, buyers and sellers maytypically choose which tradeable objects they wish to trade. As usedherein, the term “tradeable object” refers to anything that can betraded with a quantity and/or price. It includes, but is not limited to,all types of traded events, goods and/or financial products, which caninclude, for example, stocks, options, bonds, futures, currency, andwarrants, as well as funds, derivatives and collections of theforegoing, and all types of commodities, such as grains, energy, andmetals. The tradeable object may be “real,” such as products that arelisted by an exchange for trading, or “synthetic,” such as a combinationof real products that is created by the user. A tradeable object couldactually be a combination of other tradeable object, such as a class oftradeable objects.

Every day, there are thousands of traders buying and selling for manydifferent reasons, such as, for example, fear of loss, hope of gain,hedging, broker recommendations, and many others. To profit inelectronic markets, market participants must be able to assimilate largeamounts of data in order to recognize market trends and to view currentmarket conditions. However, trying to figure out why market participantsare buying or selling can be very difficult. Chart patterns may putbuying and selling activities into perspective by providing a concisepicture of the two activities as a tool to analyze markets. Among manydifferent market data types, traders may wish to view one or more pricecharts to forecast future price movements, for example. A price chartdisplays a sequence of prices plotted over a specific timeframe, as wellas other information that can be useful in analyzing market trends andmarket patterns, including technical indicators, such as, for example,moving averages.

Typically, a timeframe used for forming a price chart depends on thelevel of data compression, and determines the level of detail of thedisplayed data. The timeframe of a price chart may be any timeframe,including, for example, intra-day, daily, weekly, monthly, quarterly, orannual. An intra-day chart may display open, close, high, and low pricesfor an identified interval, such as one or more minutes, or secondsduring a trading day. Then, the daily chart may display a single set ofprice data for each day of trading depicted in the chart. The weeklychart is made up of daily data that has been compressed to show eachweek as a single point, and so forth.

Traders usually concentrate on charts made up of daily and intra-daydata series to forecast short-term price movements, whereas weekly andmonthly charts are typically used to spot long-term trends. While sometraders may wish to view either a long-term chart or a short-term chart,many traders often want to view the combination of the two chart typesto see the full picture of the market. Therefore, a preferable approachwould be to show the two chart types on a single integrated graph.However, due to the screen size limitations, the prior art systems donot offer satisfactory solutions for viewing the short-term chartdetails and the long-term chart details on a single axis.

A typical display has the screen size on the order of 1024×768 pixels,which means that using the extreme minimum of one pixel per each valueto be displayed on the screen, only 1024 values could be displayed on asingle linear chart. For example, if typical one-minute bars with high,low, open, and close were used, the maximum number of values that couldbe shown would be 256, or a four and a quarter hour time period (using aminimal four pixels per bar, with three pixels used for each bar and onepixel used for spacing between the bars). Then, if five-minute bars weredisplayed, the maximum number of bars would be still 256, while the timeperiod range would increase to twenty-one and a quarter hours of tradingtime.

Therefore, based on the examples given above, the longer the time rangedisplayed, the less detail is available about the fine-grained movementsof the market. FIG. 1A is a block diagram illustrating a time scalediagram 100 that is often used to display time data series. The timescale diagram 100 is a linear time scale chart that is wide enough tosee the entire year of data. However, as shown in FIG. 1A, it is almostimpossible to see anything as small as a day, and totally impossible tosee anything on the order of an hour, a minute, or a second, since thereis not enough room to show such level of detail. Thus, the linear timescale chart 100 does not meet the objectives of showing both historicalcontext and recent time fine-grained detail.

FIG. 1B illustrates another approach that can be used to display thecombination of current and historical time series data using multiplelinear time scale graphs 150. FIG. 1B illustrates three linear timescale charts 152, 154, and 156 that provide both, the broad historicalcontext and most recent time fine-grained detail. More specifically, thechart 152 displays weekly, monthly, and quarterly timeframes, while thechart 154 displays hourly, and daily timeframes, and finally, the chart156 displays data on the order of minutes and seconds corresponding tothe last hour. However, this approach of displaying data is extremelywasteful of space, and a group of only few such graphs can be displayedon a screen. Also, the use of multiple graphs adds to the cognitiveworkload on a user, since it is harder to see and recognize pricemovements or patterns relative to historical highs and lows.

Another approach to displaying time series data is to use a logarithmictime scale. One possible implementation of a logarithmic time scalegraph is to mark the leftmost mark on the scale “1 second,” while thenext evenly spaced mark to the right would be “10 seconds,” assumingthat a base-10 logarithmic scale is used, the next evenly spaced markwould be “100 seconds” (1 minute 40 seconds), the next would be “1000seconds” (16 minutes, 40 seconds), the next would be “10,000 seconds”(two-hours, forty-six minutes, forty seconds), and so on. This approachappears to allow for displaying a wide range of time data series. FIG. 2is a block diagram illustrating a base-10 logarithmic scale 200. Theexample graphical scale 200 displays the natural time periods ratherthan the evenly spaced marks, where the leftmost mark on the scalerepresents a time of one second, the next mark represents one minute,the next mark represents one hour, and so on.

However, the logarithmic time scale approach suffers from severalproblems. First, the natural evenly-spaced divisions are not naturalunits that make sense to a user, like seconds, minutes, five minutes,hours, days, weeks, months, quarters, etc., but are mathematical powersof the smallest logarithmic base unit. This problem can be addressed byusing more natural division marks, such as the one shown in relation toFIG. 2, although the illustrated marks are not regularly spaced. Thesecond problem with the logarithmic time scale is that the meaning of“bar” data is not obvious for viewing when displayed in relation to thelogarithmic scale, because each bar appearing at a different place onthe time scale has a different rollup period, and therefore causesreading of the displayed data to be counter-intuitive.

Thus, it would beneficial to provide a graphical display of data seriesthat will not only provide up-to-date details and historical contextdata, but also one that will be intuitive for a trader to use.

BRIEF DESCRIPTION OF THE DRAWINGS

Example embodiments of the present invention are described herein withreference to the following drawings, in which:

FIG. 1A is a block diagram illustrating a conventional time scalediagram that is often used to display historical and the latestup-to-the-second data series;

FIG. 1B is a block diagram illustrating a plurality of conventional timescale diagrams that can be used to display historical and the latestup-to-the-second data series;

FIG. 2 is a block diagram illustrating a conventional logarithmic scalediagram that can be used to display historical and the latestup-to-the-second data series;

FIG. 3 is a block diagram illustrating an example network configurationfor a communication system utilized to access one or more exchanges;

FIG. 4 is a block diagram illustrating an example client device with anumber of layers defining different stages that can be used to implementembodiments of the present invention;

FIG. 5 is a block diagram illustrating an example chart for displayinghistorical and the most current data series according to one exampleembodiment;

FIG. 6 is a flowchart describing a method for displaying time seriesdata in relation to a chart according to one example embodiment; and

FIG. 7 is a block diagram illustrating an example method forconstructing time contiguous regions of a linear time scale using aplurality of linear time scales according to one example embodiment.

DETAILED DESCRIPTION I. Historical and Current Data Integrated GraphDisplay Overview

According to one example embodiment, a graphical interface is providedfor displaying at least one data series. The data series can beassociated with one or more variables having domains that extend overseveral orders of magnitude. An example of the data series could be oneor more time series data; however, different data series could also bedisplayed in relation to the graphical interface of the exampleembodiments. Preferably, the graphical interface includes at least oneaxis, and the axis is divided into a plurality of axis regions that usedifferent linear scales, while the combination of the regions forms acontinuous non-linear scale axis. The graphical interface also includesat least one chart that is displayed in relation to the plurality ofaxis regions. The chart presents the data series that is plotted in eachaxis region based on a scale resolution corresponding to each respectiveaxis region.

While the present invention is described herein with reference toillustrative embodiments for particular applications, it should beunderstood that the present invention is not limited thereto. Othersystems, methods, and advantages of the present embodiments will be orbecome apparent to one with skill in the art upon examination of thefollowing drawings and description. It is intended that all suchadditional systems, methods, features, and advantages be within thescope of the present invention, and be protected by the accompanyingclaims.

II. Hardware and Software Overview

As will be appreciated by one of ordinary skill in the art, the presentembodiments may be operated in an entirely software embodiment, in anentirely hardware embodiment, or in a combination thereof. However, forsake of illustration, the preferred embodiments are described in asoftware-based embodiment, which is executed on a computer device. Assuch, the preferred embodiments take the form of a computer programproduct that is stored on a computer readable storage medium and isexecuted by a suitable instruction system in the computer device. Anysuitable computer readable medium may be utilized including hard disks,CD-ROMs, optical storage devices, or magnetic storage devices, forexample.

The example embodiments that will be used hereinafter to illustratedifferent configurations and functionalities of the integrated chartwill be described in relation to one or more time series of market data.However, it should be understood that the embodiments described inrelation to subsequent figures are not limited to displaying time seriesdata or market related data, and the embodiments could be applied todifferent data series and/or different data types.

In an electronic trading environment, when a trader selects a tradeableobject, the trader may access market data related to the selectedtradeable object(s). Referring to FIG. 3, an example communication thatmight occur between an electronic exchange and a client terminal inaccordance with the preferred embodiments is shown. During a tradingsession, market data 308, in the form of messages, may be relayed from ahost exchange 306 over communication links 316 and 312 to a clientterminal generally indicated as 302. As illustrated in FIG. 3,intermediate devices, such as gateway(s) 304, may be used to facilitatecommunications between the client terminal 302 and the host exchange306. It should be understood that while FIG. 3 illustrates the clientterminal 302 communicating with a single host exchange, in analternative embodiment, the client terminal 302 could establish tradingsessions to more than one host exchange.

The market data 308 contains information that characterizes thetradeable object's order book including, among other parameters, orderrelated parameters, and the inside market, which represents the lowestsell price (also referred to as the best or lowest ask price) and thehighest buy price (also referred to as the best or highest bid price).In some electronic markets, market data may also include market depth,which generally refers to quantities available for trading the tradeableobject at certain buy price levels and quantities available for tradingthe tradeable object at certain sell price levels.

In addition to providing the tradeable object's order book information,electronic exchanges can offer different types of market informationsuch as total traded quantity for each price level, an opening price,the price of the last trade, last traded quantity, the closing price, ororder fill information. It should be understood that an electronicexchange might include more or fewer items depending on the type oftradeable object or the type of exchange. Also, it should be understoodthat the messages provided in the market data 308 may vary in sizedepending on the content carried by them, and the software at thereceiving end may be programmed to understand the messages and to actout certain operations.

Typically, a trader may view the information provided from an exchangevia one or more specialized trading screens created by software runningon the client terminal 302. In addition to viewing market informationusing trading screens, a trader may view data displayed in relation tocharts, such as an integrated chart that will be described in greaterdetail below. Upon viewing the market information or a portion thereof,a trader may wish to take actions, such as send orders to an exchange,cancel orders at the exchange, or change order parameters, for example.To do so, the trader may input various commands or signals into theclient terminal 302. Upon receiving one or more commands or signals fromthe trader, the client terminal 302 may generate messages that reflectthe actions taken, generally shown at 310. It should be understood thatdifferent types of messages or order types can be submitted to the hostexchange 306, all of which may be considered various types oftransaction information. Once generated, user action messages 310 may besent from the client terminal 302 to the host exchange overcommunication links 314 and 316.

III. System Function and Operation

FIG. 4 is a block diagram illustrating a client device 400 with a numberof layers defining different stages that may be used to implementembodiments of the present invention. The layers include an integratedchart application 402, an operating system 404, and an applicationprogramming interface (“API”) 406. The client device 400 also preferablyincludes, among other things, at least a processor and memory (both ofwhich are not shown in the figure, but are well-known computercomponents). Preferably, the processor has enough processing power tohandle and process various types of market information. Therefore, themore market information is received and processed, the more processingpower is preferred. However, any present day processor has enoughprocessing power to handle and process various types of marketinformation. Also, it should be understood that memory may include anycomputer readable medium. The term computer readable medium, as usedherein, refers to any medium that participates in providing instructionsto a processor unit for execution.

Preferably, the integrated chart application 402 has access to marketinformation from one or more host exchanges 408 through an interface,such as an application programming interface (“API”) 406. When theintegrated chart application 402 receives information from the hostexchange 408, it may arrange and display the received information on anintegrated chart that a trader may view on the visual output displaydevice 410. The display devices 410 could be a CRT-based video display,an LCD-based display, a gas plasma-panel display, a display that showsthree-dimensional images, or a different display type. Also, the displaydevice 410 could be a combination of separate display devices that cantogether create a composition in the user's visual field of each portionof the integrated chart, such as a head-mounted monocular see-throughdisplay that holds the integrated chart used together with anotherdisplay that holds another interface, such as a trading interface. Theintegrated chart application 402 may also receive input signals fromtraders via input device 412. Example input devices may include a mouse,keyboard, game pad, joystick, or trackball. The input signals receivedfrom a user may include user requests to customize the view of theintegrated chart, or an input defining one or more data types to bedisplayed in relation to the integrated chart. However, it should beunderstood that different input types are possible as well.

The operating system 404 may be used to manage hardware and softwareresources of the client terminal 400. General functions of the operatingsystem 404 may include processor management, memory management, devicemanagement, storage management, application interface, and userinterface. Any type of the operating system 404 may be used to implementthe present embodiments, and examples of common operating systemsinclude the Microsoft WINDOWS family of operating systems, the UNIXfamily of operating systems, or the MACINTOSH operating systems.However, those ordinarily skilled in the art will recognize that theadded complexity of an operating system may not be necessary to performthe functions herein.

IV. Integrated Chart Display Examples

As mentioned in earlier paragraphs, the examples shown below will bedescribed in reference to time series of market data received fromelectronic exchanges or, more specifically, traded price data associatedwith a tradeable object. However, it should be understood that theinvention could be applied to any data series, not just those where timeis the primary dimension, or where data is market related data. Ingeneral, the integrated charts could be used to display any variablesthat have domains extending over several orders of magnitude.

FIG. 5 is a block diagram illustrating an example chart interface 500for displaying historical and the most recent time series data accordingto one example embodiment. The example interface 500 displays a pricechart 502 in relation to a time axis 506 and a price axis 504. The pricechart 502 is displayed using a bar chart format, where each bar extendsfrom the highest price to the lowest price detected for the timeframecorresponding to each bar. In addition to depicting the highest andlowest traded prices, each bar may also display the opening and closingprice levels (not shown). In one embodiment, the lowest and highesttraded price levels may be displayed in a format of small branchescoming away from the main bar at the appropriate levels, with theclosing prices positioned on the right side of the bar, and the openingprice positioned on the left side of the bar. However, it should beunderstood that different types of charts could also be used in relationto the integrated chart display, such as, for example, a candlestickchart, a line chart, or any other chart type, and different data typesrelated to a tradeable object could be displayed as well, such as tradedvolume.

The time axis 506 shows the combination of the most recent andhistorical price data corresponding to the last 5 days, 8 hours, and 8minutes of prices, with half of the space used to show data from thelast 38 minutes, and half of that used to show data from the last 3minutes.

According to one preferred embodiment, the time axis 506 is divided intoa plurality of axis regions 508-522 that form a continuous time axis.Each axis region uses a linear time scale, and the time scale isdifferent within the neighboring regions. Referring to FIG. 5, forexample, the axis region 508 corresponds to and displays data associatedwith the most current 30 seconds of trading, while the axis region 510to the left of the region 508 corresponds to 90 seconds before the timeperiod corresponding to the region 508. Similarly, the axis region 512corresponds to 6 minutes before the time period of the axis region 510.Other regions display data based on the same principle, so that the axisregions 514-522 correspond to 30 minutes, 90 minutes, 6 hours, 2 days,and 3 days before the time period of each preceding axis region.Preferably, the ending point of one axis region and the start of thenext region are related so that a continuous time axis is created andall data are displayed.

In the embodiments illustrated in FIG. 5, each time axis region isdivided into sub-intervals, and the sub-intervals in a single regioncorrespond to the same roll-up time interval. For example, eachsub-interval in the axis region 502 corresponds to one second, while thesub-intervals of the axis region 518 correspond to 15 minutes. Also, inthe embodiment illustrated in FIG. 5, while the sub-intervals of twoneighboring regions correspond to different time periods, thesub-intervals are evenly spaced throughout the entire time axis.However, it should be understood that the sub-interval spacing of thetwo neighboring regions could be different based on user preferences.

In the preferred embodiment, a user can customize a number of regions aswell as the time scales used in relation to each region on the timeaxis. For example, the chart interface 500 could display sliders toallow a user to segment the time axis 506 into a desired number of axisregions, or to increase/decrease a default number of regions preset forthe chart interface. When the axis regions are created, a user could usethe sliders corresponding to each region, such as sliders 524 and 526 inFIG. 5, to balance the width of each region based on user preferences.It should be understood that many more controls or commands could beused to allow settings of the sliders to be saved or restored.

In addition to resizing the axis regions, the window corresponding tothe chart interface could be capable of resizing as well. The functionof resizing the main window may have different user-controllableresults, and the results may range from scaling the current datadisplayed in relation to each axis region, extending/shrinking the sizeof the axis region bordering the edge being resized, toextending/shrinking the size of all axis regions proportionately. In theembodiment allowing a user to resize the main window, the sliderscorresponding to the axis regions preferably have a visually representedlockdown option to guarantee that the amount of data covered by theassociated regions stays the same during resizing operations.

Alternatively, or in addition to making the regions user-customizable,the integrated chart application 402 could automatically control thesize and scale of each region based on metrics about the volume, range,or how fast the price or any other value being plotted has moved withina time interval. In such an embodiment, the chart interface 500 canintelligently and automatically give a user enough details about timeperiods where details are necessary or interesting, and may use largerscales for axis regions where such detail is unnecessary because nothinginteresting happened. It should be understood that the integrated chartapplication 402 could include a number of default settings, oruser-configurable settings that could be used to control the layout ofthe display. The user-configurable settings could also enable a traderto define trigger points that could be used by the integrated chartapplication 402 to make decisions about automatic scale changes.

The present invention is not limited to the illustrated layout. In theexample shown in relation to the display interface 500, the time or thevalue scale corresponding to the regions increases in one directionacross the chart; however, different embodiments are possible as well.For example, a central region could be used to display fine-grainedlevel of detail, and a number of regions with progressively less detailat larger scales could surround the central region. It should beunderstood that the regions could be positioned either horizontally orvertically in relation to the central region. Also, the central regionwith the fine-grained level of detail could be at a natural point in thescale of the vertical axis' value, such as a zero point on a scale thathas both positive and negative numbers, or could be positioned at apoint that emphasizes recent movements, such as the value at the startof the day, or one hour ago. Also, a region with a fine level of detailcould be configured to correspond to a time period preceding, during, orimmediately after a user configurable event, such as, for example, whena certain number comes out, when a predetermined market condition isdetected, before or after the opening/closing time period, or upondetecting any other event.

It should be understood that the method for displaying data series canbe used in relation to more than one axis, such as in relation to boththe time axis 506 and the vertical price axis 504 in FIG. 5. In such anembodiment, the smallest level of detail could be used in relation to aregion corresponding to where the price currently is, and the currentprice region could be surrounded with other regions, extending both upand down, and the regions can be scaled differently, e.g., showing alarger price range in a smaller space. The vertical regions could alsobe user configurable, and could have slider controls to permit a user toexpand or shrink sizes of the regions in a manner that the user willfind desirable.

The time series data in each region may be updated real-time as new dataupdates are received. In the example described in reference to FIG. 5,the data displayed in relation to the chart interface may be updatedbased on update messages being received from one or more exchanges.However, the updates could be received from other data sources as welldepending on the type(s) of data displayed in relation to the integratedgraphical chart interface, and the example embodiments are not limitedto receiving market data updates.

It should be understood that many different methods could be used toupdate graphical representation of one or more data series displayed onthe chart interface. In one embodiment, as time passes, each region maymove the existing display one bar width, and may display a bar for thenewest time interval. Thus, in the region 514 that uses one-minute bars,a new bar may be plotted every minute as the region of the chart 502scrolls to the left and is clipped by the fixed width boundary edge ofthe region 514. For example, plotting of the data series on a displayscreen may be performed using a technique commonly known in the art asdouble buffering, which first draws an offscreen image, and thentransfers the prepared image to a primary display screen; however,different methods could also be used.

The method described above that draws a new bar and scrolls the rest ofthe region when the update is performed requires little computationsince only the regions with the smallest time intervals are updated veryoften. For example, in the chart interface 500 that begins withone-second bars, the region 508 corresponding to the one secondintervals is updated once a second, and the neighboring region 510 usingfive second intervals are updated once every 5 seconds, and so on.However, it should be understood that different methods for updatingdata on the chart interface could also be used. Also, because thedisplayed data scrolls out of (or is clipped by region boundaries) atdifferent rates for each region, there is preferably a small overlap inthe time ranges displayed. However, it should be understood thatdepending on the method used for creating the chart, there could be nooverlap in the time ranges as well.

FIG. 6 is a flowchart illustrating an example method 600 for drawing andupdating data displayed in relation to an integrated chart display. Theflowchart of FIG. 6 shows the functionality and operation of a possibleimplementation of the present embodiments. In this regard, each blockmay represent a module, a segment, or a portion of code, which includesone or more executable instructions for implementing specific logicalfunctions or steps in the process. It should be understood thatalternate implementations are included within the scope of the preferredembodiment of the present invention in which functions may be executedout of order from that shown or discussed, including substantiallyconcurrently or in reverse order, depending on the functionalityinvolved, as would be understood by those reasonable skilled in the artof the present invention. Also, the method 600 will be described inrelation to the components illustrated in FIG. 4; however, it should beunderstood that different components could also be used to execute themethod.

Referring to FIG. 6, at step 602, the integrated chart application 402acquires data for all regions, and assembles the acquired data based onthe time granularity used in relation to each region. For example, for aone-hour time region that uses 15-minute bars (with high, low, open, andclose values displayed in relation to each bar), the integrated chartapplication 402 may acquire, determine, and group charted values forfour bars of the one-hour time period.

At step 604, the integrated chart application 402 draws bars for eachregion displayed in relation to the integrated chart on a displayscreen. It should be understood that different drawingmethods/algorithms could be used to draw bars onto a display screen, andthe embodiments described herein are not limited to any particularmethod or algorithm. For example, as mentioned in relation to FIG. 5,the integrated chart application 402 may use the double bufferingdrawing algorithm to first draw the bars into a private drawing context(e.g., a bitmap). The integrated chart application 402 may then transferthe created bitmaps to create a composite bitmap using the bit blocktransfer (“BITBLT”) function, the Display Data Channel (“DDC”), or anyother function or method. The composite bitmap may then be transferredto the display screen. Alternatively, rather than using the doublebuffering function, the integrated chart application 402 could use amarkup-based drawing algorithm, such as the Scalable Vector Graph(“SVG”), Extensible Application Markup Language (“XAML”), Web3D, or anyother algorithm that can be used to create the markup (tags) for eachregion using the markup's object model or the scene graph.

At step 606, the integrated chart application 402 updates data displayedin relation to each bar based on data updates being received from anoutside source, such as market data updates being received from one ormore electronic exchanges. For example, upon receiving a data update,the integrated chart application 402 may calculate incremental valuesfor quantities being tracked and displayed in relation to the integratedchart. In an embodiment where the integrated chart tracks high and lowvalues for a specified quantity, the integrated chart application 402may determine maximum and minimum values for the most recent time periodby comparing the currently used maximum/minimum values detected for thetime period to the new value received from the outside source. Then, ifany new maximum/minimum values are detected, the integrated chartapplication 402 may update the bars accordingly.

At step 608, the integrated chart application 402 draws a new bar upondetecting expiration of the time sub-interval corresponding to the mostrecent time period. For example, if the most recent time period displaysone-minute bars, when the integrated chart application 402 detects thatone minute has elapsed, which can be detected using time stamp data or alocal system clock, a new bar may be drawn. If drawing is performeddirectly on a display screen, the integrated chart application 402 mayfirst shift the bar drawn over, clipping off the oldest bar, and drawthe newest bar next to the boundary of the one minute bar region.Alternatively, if the double buffering method is used instead, theintegrated bar chart application 402 may first draw a new bar into adrawing context or a bitmap. Then, the application may use the BITBLTfunction to transfer the created bitmap region to the composite bitmap,and then to the display screen. If the markup-based drawing is usedinstead, the application 402 may insert the new data into the objectmodel by adjusting the transform element for the region to have theeffect of scrolling contents so that the new data can be drawn.

At step 610, the integrated bar chart application 402 calculates new bardata for longer time intervals using data from smaller time intervals,and proceeds to draw the new bars as described above. For example, ifthe one minute bar region is followed by the five minute bar region, theintegrated bar chart application 402 may calculate data for the newestfive minute bar using data from the oldest five one-minute bars in theadjacent data region. Then, the method 600 may continue at step 602, andthe steps taken by the integrated bar chart application 402 may berepeated.

FIG. 7 is a block diagram explaining one example method that may be usedto create an example chart interface for displaying historical andcurrent time series data according to one example embodiment using thedouble buffering method. As explained in reference to the precedingfigures, the chart interface of the preferred embodiments uses one ormore non-linear scale axes to plot the value of a selected variablecorresponding to a data series, and each axis may be divided into anumber of regions that use linear scale axes. One example design of thechart interface can be explained using multiple linear time scalesdescribed in reference to FIG. 1B. FIG. 6 illustrates a plurality oflinear time scale axes 700, 702, 704, 706, and 708, the portions ofwhich can be used to compose an integrated time axis of the chartinterface of the present embodiments. More specifically, the scale axis700 displays a time scale that includes the longest time period rangingfrom the last second up to one year. Then, the remaining time axes702-708 correspond to shorter time periods, such as one week, 8 hours,an hour, and 30 minutes, respectively.

In one example embodiment, the multiple time axes 700-708 can be brokeninto time-contiguous sections that may be then combined to create thenon-linear scale axis described in reference to FIG. 5. An example setof time axis sections 710, 712, 714, 716, and 718, are illustrated inrelation to the axes in FIG. 7. In the embodiment using the doublebuffering drawing method, each time axis section 710-718 corresponds toa bitmap on the private drawing device context, and the new data isdrawn on each respective bitmap. Then, the bitmaps may be transferredusing the BITBLT function to create the composite bitmap, such as theone illustrated at 720. In the composite bitmap, the region on theleftmost part of the composite bitmap 720 corresponds to the most recenttime period, while each adjacent region uses a progressively larger timescale. However, the regions could be arranged based on any userpreferences, some of which were described in relation to earlierfigures. The composite bitmap 720 may then be transferred to the displayscreen using the BITBLT, or some other function.

Also, due to different time scales being used by the neighboring regionsand the need to not omit any values from the display when data displayedin relation to each region are updated, the regions may be coupled suchthat there is some time overlap in the contiguous regions. For example,for a region of five-minute bars adjacent to a region with one-minutebars, the earliest five-minute bar may contain data from up to fiveminutes of the one-minute bar region. However, it should be understoodthat the level of the overlap may vary based on a method used forupdating data displayed in relation to each region, or based on someother factors, and some embodiments may use no overlapping regions.

The above description of the preferred embodiments, alternativeembodiments, and specific examples, are given by way of illustration andshould not be viewed as limiting. Further, many changes andmodifications within the scope of the present embodiments may be madewithout departing from the spirit thereof, and the present inventionincludes such changes and modifications.

It will be apparent to those of ordinary skill in the art that methodsinvolved in the system and method for an integrated display ofhistorical and current data series may be embodied in a computer programproduct that includes one or more computer readable media. For example,a computer readable medium can include a readable memory device, such asa hard drive device, CD-ROM, a DVD-ROM, or a computer diskette, havingcomputer readable program code segments stored thereon. The computerreadable medium can also include a communications or transmissionmedium, such as, a bus or a communication link, either optical, wired orwireless having program code segments carried thereon as digital oranalog data signals.

The claims should not be read as limited to the described order orelements unless stated to that effect. Therefore, all embodiments thatcome within the scope and spirit of the following claims and equivalentsthereto are claimed as the invention.

1. (canceled)
 2. A computer readable medium having stored thereininstructions executable by a processor, including instructionsexecutable to: generate a time axis divided into a plurality of regions,wherein each region of the plurality of regions uses a linear timescale, wherein the plurality of regions includes a recent data regionand an older data region, wherein the recent data region uses a firstlinear time scale, wherein the older data region uses a second lineartime scale, wherein the first linear time scale is different than thesecond linear time scale, wherein the plurality of regions forms acontinuous non-linear time scale on the time axis; display a chart inrelation to the time axis, wherein the chart includes a data series,wherein the data series is plotted along the time axis according to thelinear time scale corresponding to each region of the time axis; receivenew data in the data series; display, in response to receiving the newdata in the data series, the new data in the recent data regionaccording to the first linear scale; and automatically shift an oldestdata previously displayed in the recent data region to the older dataregion.
 3. The computer readable medium of claim 2, wherein the chartincludes at least one of a candlestick chart, a bar chart, and a linechart.
 4. The computer readable medium of claim 2, wherein the time axisincludes a plurality of sub-intervals.
 5. The computer readable mediumof claim 4, wherein the plurality of sub-intervals is evenly spaced overthe time axis.
 6. The computer readable medium of claim 2, wherein theplurality of regions includes a plurality of older data regions.
 7. Thecomputer readable medium of claim 6, wherein a number of the pluralityof older data regions is user configurable.
 8. The computer readablemedium of claim 6, wherein the linear time scale for each older dataregion of the plurality of older data regions is user configurable. 9.The computer readable medium of claim 6, further including instructionsexecutable to: receive a user command to adjust a size of at least oneregion of the plurality of older data regions; and adjust, in responseto receiving the user command, the size of the at least one older dataregion of the plurality of older data regions.
 10. The computer readablemedium of claim 9, further including instructions executable to displaya movable icon, wherein the user command is received via the movableicon.
 11. The computer readable medium of claim 2, wherein the lineartime scale for the older data region includes any one of: a year-basedtimeframe, a quarter-based timeframe, a month-based timeframe, aweek-based timeframe, a day-based timeframe, an hour based timeframe anda minute based timeframe.
 12. A system including: a computing device,wherein the computing device is configured to generate a time axisdivided into a plurality of regions, wherein each region of theplurality of regions uses a linear time scale, wherein the plurality ofregions includes a recent data region and an older data region, whereinthe recent data region uses a first linear time scale, wherein the olderdata region uses a second linear time scale, wherein the first lineartime scale is different than the second linear time scale, wherein theplurality of regions forms a continuous non-linear time scale on thetime axis; wherein the computing device is configured to display a chartin relation to the time axis, wherein the chart includes a data series,wherein the data series is plotted along the time axis according to thelinear time scale corresponding to each region of the time axis; whereinthe computing device is configured to receive new data in the dataseries; wherein the computing device is configured to display, inresponse to receiving the new data in the data series, the new data inthe recent data region according to the first linear scale; and whereinthe computing device is configured to automatically shift an oldest datapreviously displayed in the recent data region to the older data region.13. The system of claim 12, wherein the chart includes at least one of acandlestick chart, a bar chart, and a line chart.
 14. The system ofclaim 12, wherein the time axis includes a plurality of sub-intervals.15. The system of claim 14, wherein the plurality of sub-intervals isevenly spaced over the time axis.
 16. The system of claim 12, whereinthe plurality of regions includes a plurality of older data regions. 17.The system of claim 16, wherein a number of the plurality of older dataregions is user configurable.
 18. The system of claim 16, wherein thelinear time scale for each older data region of the plurality of olderdata regions is user configurable.
 19. The system of claim 16, whereinthe computing device is configured to receive a user command to adjust asize of at least one region of the plurality of older data regions; andwherein the computing device is configured to adjust, in response toreceiving the user command, the size of the at least one older dataregion of the plurality of older data regions.
 20. The system of claim19, wherein the computing device is configured to display a movableicon, wherein the user command is received via the movable icon.
 21. Thesystem of claim 12, wherein the linear time scale for the older dataregion includes any one of: a year-based timeframe, a quarter-basedtimeframe, a month-based timeframe, a week-based timeframe, a day-basedtimeframe, an hour based timeframe and a minute based timeframe.